package br.com.ponto.service;

import java.util.List;

import br.com.ponto.dao.EmpresaDAO;
import br.com.ponto.dao.FuncionarioDAO;
import br.com.ponto.model.Empresa;
import br.com.ponto.model.Usuario;

public class EmpresaService {
	
	private EmpresaDAO empresaDAO;
	FuncionarioDAO funcDAO;
	
	public EmpresaService() {
		this.empresaDAO = new EmpresaDAO();
		this.funcDAO = new FuncionarioDAO();
	}
	
	public Empresa consultar(Integer idEmpresa) {
		// carrega a empresa...
		Empresa empresa = this.empresaDAO.consultar(idEmpresa);
		// carrega os funcionarios da empresa (Lazy)...
		empresa.setFuncionarios(empresaDAO.carregarFuncionarios(empresa));
		
		return empresa;
	}
	
	public void remover(Integer idEmpresa, Usuario usuario) {
		// carrega a empresa...
		Empresa empresa = this.consultar(idEmpresa);
		
		// seta pra inativa
		empresa.setAtivo(Boolean.FALSE);
		
		this.salvar(empresa, usuario);
	}
	
	public Empresa salvar(Empresa empresa, Usuario usuario) {
		return this.empresaDAO.salvar(empresa, usuario);
	}
	
	public List<Empresa> listar(String nomeEmpresa) {
		if(nomeEmpresa == null || "".equals(nomeEmpresa)) {
			return this.empresaDAO.listar();
		} else {
			return this.empresaDAO.listarPorNome(nomeEmpresa);
		}
	}
	
	public List<String> listarNomeEmpresas(String nomeEmpresa) {
		return this.empresaDAO.listarNomeEmpresas(nomeEmpresa);
	}

}
